package com.ruoyi.business.base.service;

import com.ruoyi.business.base.domain.BaseArea;
import java.util.List;

/**
 * 地区公司信息 服务层
 * 
 * @author ruoyi
 */
public interface IBaseAreaService
{
    /**
     * 查询地区公司信息集合
     * 
     * @param area 地区公司信息
     * @return 地区公司列表
     */
    public List<BaseArea> selectAreaList(BaseArea area);

    /**
     * 查询所有地区公司
     * 
     * @return 地区公司列表
     */
    public List<BaseArea> selectAreaAll();

    /**
     * 通过地区公司ID查询地区公司信息
     * 
     * @param areaId 地区公司ID
     * @return 角色对象信息
     */
    public BaseArea selectAreaById(Long areaId);

    /**
     * 根据用户ID获取地区公司选择框列表
     * 
     * @param userId 用户ID
     * @return 选中地区公司ID列表
     */
    public List<Long> selectAreaListByUserId(Long userId);

    /**
     * 校验地区公司名称
     * 
     * @param area 地区公司信息
     * @return 结果
     */
    public boolean checkAreaNameUnique(BaseArea area);

    /**
     * 校验地区公司编码
     * 
     * @param area 地区公司信息
     * @return 结果
     */
    public boolean checkAreaCodeUnique(BaseArea area);

    /**
     * 删除地区公司信息
     * 
     * @param areaId 地区公司ID
     * @return 结果
     */
    public int deleteAreaById(Long areaId);

    /**
     * 批量删除地区公司信息
     * 
     * @param areaIds 需要删除的地区公司ID
     * @return 结果
     */
    public int deleteAreaByIds(Long[] areaIds);

    /**
     * 新增保存地区公司信息
     * 
     * @param area 地区公司信息
     * @return 结果
     */
    public int insertArea(BaseArea area);

    /**
     * 修改保存地区公司信息
     * 
     * @param area 地区公司信息
     * @return 结果
     */
    public int updateArea(BaseArea area);
}
